﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using EpsiRisk.DonneesPlateau;
using System.Threading;

namespace EpsiRisk.AffichageJeu
{
    public class ClassAffichageDe
    {
        public Vector2 position = new Vector2(0, 0);
        static List<Texture2D> spritesDeBleu = new List<Texture2D> { };
        static List<Texture2D> spritesDeRouge = new List<Texture2D> { };
        private Texture2D currentSprite;

        public ClassAffichageDe(ClassDe de)
        {
            majSprite(de);
            de.valeurApparenteModifiee += new EventHandler(de_valeurApparenteModifiee);

        }

        void de_valeurApparenteModifiee(object sender, EventArgs e)
        {
            majSprite((ClassDe)sender);
        }

        /// <summary>
        /// met a jour le sprite en fonction du contenu de l'objet dé lié
        /// </summary>
        /// <param name="de"></param>
        private void majSprite(ClassDe de)
        {
            if (de.couleur == "bleu")
            {
                currentSprite = spritesDeBleu[de.valeurApparente - 1];
            }
            if (de.couleur == "rouge")
            {
                currentSprite = spritesDeRouge[de.valeurApparente - 1];
            }
        }


        public static void initialiser(ContentManager content)
        {
            for (int i = 1; i <= 6; i++)
            {
                Texture2D spriteDeBleuI = content.Load<Texture2D>("Sprites/Des/DeBleu" + i);
                spritesDeBleu.Add(spriteDeBleuI);
                Texture2D spriteDeRougeI = content.Load<Texture2D>("Sprites/Des/DeRouge" + i);
                spritesDeRouge.Add(spriteDeRougeI);
            }
        }

        internal virtual void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Begin();
            spriteBatch.Draw(currentSprite, position, Color.White);
            spriteBatch.End();
        }
    }
}
